#pragma once

typedef struct _vus_track_base vus_track_base;
typedef struct _vus_clip_list vus_clip_list;

typedef uint vus_track_type;

/**
 * Gets the type of a track.
 *
 * @param self The track.
 * @return The track type.
 */
VENTUS_EXPORT vus_track_type vus_track_base_get_type(vus_track_base *self);

/**
 * Gets the name of a track.
 *
 * @param self The track.
 * @return The name of the track.
 */
VENTUS_EXPORT char *vus_track_base_get_name(vus_track_base *self);

/**
 * Sets the name of a track.
 *
 * @param self The track.
 * @param value The value to set the name to.
 */
VENTUS_EXPORT void vus_track_base_set_name(vus_track_base *self, char *value);

/**
 * Gets the list of clips owned by a track.
 *
 * @param self The track.
 * @return The clip list.
 */
VENTUS_EXPORT vus_clip_list *vus_track_base_clips(vus_track_base *self);
